package config

import (
	"errors"
	"log"
	"os"
)

var (
	SrvPort string
	SwaggerUrl string

	JksUrl string
	JksUser string
	JksPWD	string

	MysqlUrl string
	MysqlUser string
	MysqlPWD string
	MysqlDB string

	TsfUrl string
	TsfSecretID string
	TsfSecretKey string

	GiteaURL string

)

func init() {
	SetEnv()
	if err := CheckEnv(); err != nil {
		log.Fatal(err)
	}
}

func SetEnv() {
	SrvPort = os.Getenv("SRV_PORT")
	SwaggerUrl = os.Getenv("SWAGGER")
	JksUrl = os.Getenv("JKS_URL")
	JksUser = os.Getenv("JKS_USER")
	JksPWD = os.Getenv("JKS_PWD")
	MysqlUrl = os.Getenv("MYSQL_URL")
	MysqlUser = os.Getenv("MYSQL_USER")
	MysqlPWD = os.Getenv("MYSQL_PWD")
	MysqlDB = os.Getenv("MYSQL_DB")
	TsfUrl = os.Getenv("TSF_URL")
	TsfSecretID = os.Getenv("TSF_SECRET_ID")
	TsfSecretKey = os.Getenv("TSF_SECRET_KEY")
	GiteaURL = os.Getenv("GITEA_URL")
}

func CheckEnv() error {
	var err error
	if SrvPort == "" {
		err = errors.New("启动端口 未设置")
	}
	if SwaggerUrl == "" {
		err = errors.New("Swagger文档地址 未设置")
	}
	if JksUrl == "" {
		err = errors.New("Jenkins地址 未设置")
	}
	if JksUser == "" {
		err = errors.New("Jenkins用户名 未设置")
	}
	if JksPWD == "" {
		err = errors.New("Jenkins密码 未设置")
	}
	if MysqlUrl == "" {
		err = errors.New("Mysql数据库地址 未设置")
	}
	if MysqlUser == "" {
		err = errors.New("Mysql数据库用户名 未设置")
	}
	if MysqlPWD == "" {
		err = errors.New("Mysql数据库密码 未设置")
	}
	if MysqlDB == "" {
		err = errors.New("Mysql数据库名称 未设置")
	}
	if TsfUrl == "" {
		err = errors.New("TSF平台地址 未设置")
	}
	if TsfSecretID == "" || TsfSecretKey == "" {
		err = errors.New("TSF平台用户密钥未设置")
	}
	if TsfUrl == "" {
		err = errors.New("TSF平台地址 未设置")
	}
	if GiteaURL == "" {
		err = errors.New("Gitea仓库 未设置")
	}

	return err
}